<!-- 首页搜索框 -->
<template>
  <div class="search">
    <el-autocomplete @select="goDetail" :trigger-on-focus="false" clearable placeholder="请你输入医院名称" v-model="hosname"
      :fetch-suggestions="fetchData" />
    <el-button type="primary" size="default" :icon="Search">搜索</el-button>
  </div>
</template>

<script setup lang="ts">
//引入element-plus提供的图标
import { Search } from "@element-plus/icons-vue";
import { useRouter } from 'vue-router'
//引入ref
import { ref } from 'vue';
//引入请求方法
import { reqHospitalInfo } from '@/api/home/index';
import { HospitalInfo } from '@/api/home/type';

//创建路由器对象
let $router = useRouter();

//手机搜索的关键字（医院的名字）
let hosname = ref<string>('')
//顶部组件的回调
const fetchData = async (keyword: string, cb: any) => {
  //当用户输入完 关键字此函数会执行一次，发请求获取需要展示的数据即可
  let result: HospitalInfo = await reqHospitalInfo(keyword);
  // console.log(result.data);
  // console.log(cb);
  //整理数据，变成组件需要的数据格式
  let showData = result.data.map(item => {
    return {
      value: item.hosname,  //展示医院的名称
      hoscode: item.hoscode  //存储医院的编码
    }
  })
  //给组件提供展示的户数
  cb(showData)
}

//点击某一个推荐项
const goDetail = (item: any) => {
  console.log(item);
  //点击推荐项目进入医院详情页面，将来需要携带query参数（医院的编码）
  $router.push({path:'/hospital/register',query:{hoscode:item.hoscode}})

}

</script>

<style lang="scss" scoped>
//深度选择器
//原生的css中用>>>
//less中用/deep/
//sass中用 ::v-deep
.search {
  width: 100%;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 10px 0px;

  ::v-deep(.el-input__wrapper) {
    width: 600px;
    margin-right: 10px;
  }
}
</style>